Contrast Node Agent v5 swc plugins
swc
plugins for the Node agent's swc rewriter.
Setup
See: https://swc.rs/docs/plugin/ecmascript/getting-started
Install rust
https://www.rust-lang.org/tools/install
Add wasm
target
https://blog.rust-lang.org/2024/04/09/updates-to-rusts-wasi-targets.html
rustup target add wasm32-wasip1
Install and test
cargo test
runs the rust unit tests for all plugins.
npm test
runs the JavaScript unit tests
Building
To build release-ready targets, either run npm run build
or
cargo build --release --target wasm32-wasip1
.
Usage
These plugins are designed to be used programmatically from @swc/core
.
const { transformSync } = require('@swc/core');
const {
defaultRewriter,
defaultUnwriter,
} = require('@contrast/agent-swc-plugin');
const result = transformSync(src, {
env: {
targets: {
node: '18',
},
},
jsc: {
experimental: {
plugins: [[defaultRewriter], { assess: true, inject: true }]],
},
},
});
Releasing
Run npm version <major|minor|patch>
to bump the version. Push the changes
and tag to the repo.
When the version bump is merged to main, invoke the release
workflow using
either the GitHub UI or the gh
CLI program.